package org.jiuling.wecom.school.model;

import com.alibaba.fastjson2.JSONObject;

/**
 * 用户信息模型
 * @author 紫灵
 * @date 2023年04月20日 17时10分24秒
 */
public class UserInfoModel {

    /** 家长的外部联系人id */
    private String externalUserId;
    /** 家校通讯录里家长的userid，如果是局校互联，则返回的parent_userid格式如：CorpId/parent_userid */
    private String parentUserId;

    public String getExternalUserId() {
        return externalUserId;
    }

    public String getParentUserId() {
        return parentUserId;
    }

    /**
     * 建造者
     * @return 建造者
     */
    public Builder builder(){
        return new Builder();
    }
    /**
     * 建造者
     */
    public static class Builder{
        private final UserInfoModel userInfoModel;

        public Builder() {
            this.userInfoModel = new UserInfoModel();
        }

        /**
         * 添加家长的外部联系人id
         * @param externalUserId 家长的外部联系人id
         * @return 建造者
         */
        public Builder addExternalUserId(String externalUserId){
            userInfoModel.externalUserId = externalUserId;
            return this;
        }

        /**
         * 添加家校通讯录里家长的userid
         * @param parentUserId 家校通讯录里家长的userid
         * @return 建造者
         */
        public Builder addParentUserId(String parentUserId){
            userInfoModel.parentUserId = parentUserId;
            return this;
        }

        /**
         * 通过json添加用户模型
         * @param jsonObject 用户模型json
         * @return 建造者
         */
        public Builder addUserInfoByJson(JSONObject jsonObject){
            userInfoModel.externalUserId = jsonObject.getString("external_userid");
            userInfoModel.parentUserId = jsonObject.getString("parent_userid");
            return this;
        }

        /**
         * 建造
         * @return 用户信息模型
         */
        public UserInfoModel build(){
            return userInfoModel;
        }

    }
}
